這題會用到ASCII code
https://www.ascii-code.com/
輸入正整數判斷它是否是11 的倍數,而數字大小可能到1000 digits。
如何判斷是否為11的倍數,若正整數的奇數位和與偶數位和,兩者差的絕對值是11 的倍數,則為11 的倍數。
由於測資範圍很大,而有限測資時間,故這題用字串來當input,藉由ASCII cod來做轉換。
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string s;//數字會很大,用字串來處理
    
    while(cin>>s)
    {
        if(s=="0")
        {
            break;
        }
        
        int odd=0,even=0;//odd計算奇數位數的加總
                         //even計算偶數位數的加總
        for(int i=0;i<s.length();i++)//為了要計算每個位數,但系統不知道有幾位數,可用s.length()取出位數
         //一定要從i=0開始算
        {
            if(i%2==1)//先找出奇數位數
            {
                odd+=(s[i]-'0');//再將奇數位的值加總
                                /*字串某一個字來計算會用ASCII碼, 因為數字的ASCII碼相連,
                                     所以減掉'0'的ASCII碼就是字串的數字了*/
            }
            else//再找出偶數位
            {
                even+=(s[i]-'0');
            }
        }
        
        if((odd-even)%11==0)//奇偶位數相減能整除11就是11的倍數
        {
            cout<<s<<" is a multiple of 11."<<endl;
        }
        else
        {
            cout<<s<<" is not a multiple of 11."<<endl;
        }
    }
    return 0;
}
這題單純尋找a至b之間的所有奇數和
#include <iostream>
using namespace std;
int main(){
	int n,count=1;
	cin>>n;
	while(n--){
		int a,b;
		int sum=0;
		cin>>a>>b;
		for(int i=a;i<=b;i++){
			if(i%2)sum+=i;
		}
		cout<<"Case "<<count<<": "<<sum<<endl;
		count++;
	}
}